package org.example.setup.controller;

import com.zhipu.oapi.service.v4.model.ModelData;
import io.reactivex.Flowable;
import org.example.setup.domain.CustomerChat;
import org.example.setup.service.ChatService;
import org.example.setup.utils.AiManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
/**
 * 聊天控制器，处理与聊天相关的请求。
 */
@RestController
@RequestMapping("chat")
public class ChatController {


    @Autowired
    private ChatService chatService;
    @Autowired
    private AiManager aiManager;

    /**
     * 添加客户聊天记录。
     *
     * @param customerChat 客户聊天对象。
     * @return 添加结果，通常是插入的记录的 ID 或成功/失败的标志。
     */
    @PostMapping("chatAdd")
    public int chatAdd(@RequestBody CustomerChat customerChat)
    {
//       return chatService.chatAdd(customerChat);
        try {
            return chatService.chatAdd(customerChat);
        } catch (Exception e) {
            // 可以根据具体情况返回特定的错误码或进行日志记录
            return -1;
        }
    }

    /**
     * 根据 IP 查询客户聊天记录。
     *
     * @param registerIp 注册 IP 地址。
     * @return 客户聊天记录列表。
     */
    @GetMapping("selectByIp/{registerIp}")
    public List<CustomerChat> selectByIp(@PathVariable("registerIp") String registerIp)
    {
//        return chatService.selectByIp(registerIp);
        try {
            return chatService.selectByIp(registerIp);
        } catch (Exception e) {
            // 可以根据具体情况返回空列表或进行日志记录
            return null;
        }
    }
    /**
     * AI回复。
     *
     * @param content 注册 IP 地址。
     * @return 客户聊天记录列表。
     */
    @GetMapping("AIReply/{content}")
    public Flowable<ModelData> AIReply(@PathVariable("content") String content)
    {
        try {
            return  aiManager.doStreamRequest("你是一个智能助手", content, 0.99f);
        } catch (Exception e) {
            return null;
        }
    }

}
